package webbrow.board.reply.controller;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import webbrow.board.component.BoardReplyService;
import webbrow.board.vo.BoardReplyVO;

@Controller
public class BoardReplyController {
	@Resource(name="boardReplyService")
	private BoardReplyService boardReplyService;
	
	/**
	 * 댓글을 써서 입력하는 메소드
	 * json을 사용하여 댓글을 입력한 후 reply_main.jsp로 새로운 리스트를 담아서 보내준다.
	 */
	@RequestMapping("/writeReply.inven")
	@ResponseBody
	public List<BoardReplyVO> writeReply(BoardReplyVO rvo) throws Exception{
		boardReplyService.writeReply(rvo);//댓글을 입력한다.
		List<BoardReplyVO> list = 
				(List<BoardReplyVO>) boardReplyService.getReplyList(rvo.getNo());//댓글 리스트를 받아온다.
		return list;
	}
	
	/**
	 * 댓글을 삭제하는 메소드
	 * json을 사용하여 댓글을 삭제한 후 reply_main.jsp로 새로운 리스트를 담아서 보내준다.
	 */
	@RequestMapping("/deleteReply.inven")
	@ResponseBody
	public List<BoardReplyVO> deleteReply(BoardReplyVO rvo) throws Exception{
		boardReplyService.deletePost(rvo.getRe_no());//댓글을 삭제한다.
		List<BoardReplyVO> list = (List<BoardReplyVO>) boardReplyService.getReplyList(rvo.getNo());
		return list;
	}
	
	/**
	 * 업데이트 폼을 생성하기 위해 업데이트 시킬 댓글 정보를 받아오는 메소드
	 * re_no 번호받아온다.
	 */
	@RequestMapping("/showReplyForm.inven")
	@ResponseBody
	public BoardReplyVO showReplyForm(int re_no) throws Exception{
		BoardReplyVO rvo = boardReplyService.getReplybyReNo(re_no);
		return rvo;
	}
	
	/**
	 * re_no 번호와 수정된 content를 받아서 업데이트 하는 메소드
	 * 수정을 완료한 후 다시 reply_main.jsp로 새로운 리스트를 보내준다.
	 */
	@RequestMapping("/updateReply.inven")
	@ResponseBody
	public List<BoardReplyVO> updateReply(BoardReplyVO rvo) throws Exception{
		boardReplyService.updateReply(rvo);//댓글을 업데이트 시킨다.
		List<BoardReplyVO> list = (List<BoardReplyVO>) boardReplyService.getReplyList(rvo.getNo());
		return list;
	}

}
